
from rest_framework.viewsets import ModelViewSet
from meiduo_admin.paginators import MyPage
from meiduo_admin.serializers.order_serializers import *


# 订单视图集
class OrderInfoViewSet(ModelViewSet):
    queryset = OrderInfo.objects.all()
    serializer_class = OrderInfoSimpleModelSerializer
    pagination_class = MyPage

    def get_queryset(self):
        keyword = self.request.query_params.get('keyword')
        if keyword:
            return self.queryset.filter(order_id__contains=keyword)
        return self.queryset.all()

    # 获取操作数据所使用的序列化器类 —— 默认返回的是类属性serializer_class
    def get_serializer_class(self):
        # 重写该函数，控制不同的接口/视图，使用不同的序列化器来操作数据
        # TODO: 判断处理此次请求的视图函数
        # TODO：self.action属性，记录的是处理当前请求的视图函数名称
        if self.action == "list":
            return OrderInfoSimpleModelSerializer
        if self.action == "retrieve":
            return OrderInfoDetailModelSerializer

        return self.serializer_class